João Távora [Wed, 20 Sep 2017 18:09:10 +0000 (19:09 +0100)]
Flymake warning face easier to distinguish
A orange wavy underline is very hard to tell from a red wavy
underline.
* lisp/progmodes/flymake.el (flymake-warning): Change color to
"deep sky blue"
João Távora [Tue, 19 Sep 2017 13:25:34 +0000 (14:25 +0100)]
Flymake's flymake-proc.el parses column numbers from gcc/javac errors
Column numbers are not a great way of marking diagnostic regions, but
that's probably all that can be expected from the flymake-proc.el
backend. For now, try (end-of-thing 'sexp) to discover the
diagnostic's end position.
* lisp/progmodes/flymake-proc.el ()
(flymake-proc-err-line-patterns): Also parse column numbers,
if available, for gcc/javac warnings.
João Távora [Thu, 7 Sep 2017 14:13:39 +0000 (15:13 +0100)]
New Flymake variable flymake-diagnostic-types-alist and much cleanup
A new user-visible variable is introduced where different diagnostic
types can be categorized. Flymake backends can also contribute to
this variable. Anything that doesn’t match an existing error type
is considered.
The variable’s alists are used to propertize the overlays pertaining
to each error type. The user can override the built-in properties by
either by modifying the alist, or by modifying the properties of a
special "category" symbol, named by the `flymake-category' entry in
the alist.
The `flymake-category' entry is especially useful for, say, the author
of foo-flymake-backend, who issues diagnostics of type :foo-note, that
should behave like notes, except with no fringe bitmap:
(add-to-list 'flymake-diagnostic-types-alist
'(:foo-note
. ((flymake-category . flymake-note)
(bitmap . nil))))
For essential properties like `severity', `priority', etc, a default
value is produced. Some properties like `evaporate' cannot be
overriden.
* lisp/progmodes/flymake.el (flymake--diag): Rename from
flymake-ler.
(flymake-ler-make): Obsolete alias for flymake-diagnostic-make
(flymake-ler-errorp): Rewrite using flymake--severity.
(flymake--place-overlay): Delete.
(flymake--overlays): Now a cl-defun with &key args. Document.
Use `overlays-at' if BEG is non-nil and END is nil.
(flymake--lookup-type-property): New helper.
(flymake--highlight-line): Rewrite.
(flymake-diagnostic-types-alist): New API variable.
(flymake--diag-region)
(flymake--severity, flymake--face)
(flymake--fringe-overlay-spec): New helper.
(flymake-popup-current-error-menu): Use new flymake-overlays.
(flymake-popup-current-error-menu, flymake-report): Use
flymake--diag-errorp.
(flymake--fix-line-numbers): Use flymake--diag-line.
(flymake-goto-next-error): Pass :key to flymake-overlays
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Use flymake-diagnostic-make.
João Távora [Thu, 7 Sep 2017 13:19:33 +0000 (14:19 +0100)]
Refactor Flymake tests in preparation for more tests
Introduce a slightly more generic fixture macro.
Also make flymake-tests.el friendlier to interactive runs, by not
killing buffers visited by the user.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): New helper from
flymake-tests--current-face. Don't kill file buffers already
being visited before the test starts.
(flymake-tests--with-flymake): New macro.
(flymake-tests--current-face): Delete.
(warning-predicate-rx-gcc, warning-predicate-function-gcc)
(warning-predicate-rx-perl, warning-predicate-function-perl):
Use flymake-test--with-flymake.
João Távora [Sun, 20 Aug 2017 11:19:45 +0000 (12:19 +0100)]
Allow running Flymake tests from interactive sessions
* test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory):
Expand to reasonable value if no
EMACS_TEST_DIRECTORY. (flymake-tests--current-face): Work around
"weirdness" of bug 17647 with read-event.
João Távora [Wed, 6 Sep 2017 15:03:24 +0000 (16:03 +0100)]
Flymake diagnostics now apply to arbitrary buffer regions
Make Flymake UI some 150 lines lighter
Strip away much of the original implementation's complexity in
manipulating objects representing diagnostics as well as creating and
navigating overlays.
Lay some groundwork for a more flexible approach that allows for
different classes of diagnostics, not necessarily line-based.
Importantly, one overlay per diagnostic is created, whereas the
original implementation had one per line, and on it it concatenated
the results of errors and warnings.
This means that currently, an error and warning on the same line are
problematic and the warning might be overlooked but this will soon be
fixed by setting appropriate priorities.
Since diagnostics can highlight arbitrary regions, not just lines, the
faces were renamed.
Tests pass and backward compatibility with interactive functions is
maintained, but probably any third-party extension or customization
relying on more than a trivial set of flymake.el internals has stopped
working.
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Use new flymake-ler-make
constructor syntax.
* lisp/progmodes/flymake.el (flymake-ins-after)
(flymake-set-at, flymake-er-make-er, flymake-er-get-line)
(flymake-er-get-line-err-info-list, flymake-ler-set-file)
(flymake-ler-set-full-file, flymake-ler-set-line)
(flymake-get-line-err-count, flymake-get-err-count)
(flymake-highlight-err-lines, flymake-overlay-p)
(flymake-make-overlay, flymake-region-has-flymake-overlays)
(flymake-find-err-info)
(flymake-line-err-info-is-less-or-equal)
(flymake-add-line-err-info, flymake-add-err-info)
(flymake-get-first-err-line-no)
(flymake-get-last-err-line-no, flymake-get-next-err-line-no)
(flymake-get-prev-err-line-no, flymake-skip-whitespace)
(flymake-goto-line, flymake-goto-next-error)
(flymake-goto-prev-error, flymake-patch-err-text): Delete
functions no longer used.
(flymake-goto-next-error, flymake-goto-prev-error): Rewrite.
(flymake-report): Rewrite.
(flymake-popup-current-error-menu): Rewrite.
(flymake--highlight-line): Rename from
flymake-highlight-line. Call `flymake--place-overlay.
(flymake--place-overlay): New function.
(flymake-ler-errorp): New predicate.
(flymake-ler): Simplify.
(flymake-error): Rename from
flymake-errline.
(flymake-warning): Rename from flymake-warnline.
(flymake-warnline, flymake-errline): Obsoletion aliases.
* test/lisp/progmodes/flymake-tests.el (warning-predicate-rx-gcc)
(warning-predicate-function-gcc, warning-predicate-rx-perl)
(warning-predicate-function-perl): Use face `flymake-warning'.
João Távora [Wed, 23 Aug 2017 22:18:05 +0000 (23:18 +0100)]
Move symbols in flymake-proc.el to separate namespace
Every symbol in this flymake now starts with the prefix flymake-proc-.
Make obsolete aliases for (almost?) every symbol.
Furthermore, many flymake-proc.el symbols are prefixed with
"flymake-proc--", that is they were considered internal.
Some customization variables, interactive functions, and other symbols
considered useful to user customizations or third-party libraries are
considered "public" or "external" and so use a "flymake-proc-" prefix.
* lisp/progmodes/flymake-proc.el: Every symbol renamed.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--current-face): Use
flymake-proc-warning-predicate, not flymake-warning-predicate.
* lisp/progmodes/flymake-proc.el
(flymake-proc--get-project-include-dirs-function)
(flymake-proc--get-project-include-dirs-imp)
(flymake-proc--get-include-dirs-dot) (flymake-proc--get-tex-args)
(flymake-proc--find-make-buildfile)
(flymake-proc--get-syntax-check-program-args)
(flymake-proc--init-create-temp-source-and-master-buffer-copy)
(flymake-proc--init-find-buildfile-dir)
(flymake-proc--get-full-nonpatched-file-name)
(flymake-proc--get-full-patched-file-name) (flymake-proc--base-dir,
flymake-proc--temp-master-file-name) (flymake-proc--master-file-name)
(flymake-proc--temp-source-file-name)
(flymake-proc--delete-temp-directory) (flymake-proc--kill-process)
(flymake-proc--start-syntax-check-process)
(flymake-proc--compilation-is-running)
(flymake-proc--safe-delete-directory) (flymake-proc--safe-delete-file)
(flymake-proc--get-program-dir) (flymake-proc--restore-formatting)
(flymake-proc--clear-project-include-dirs-cache)
(flymake-proc--project-include-dirs-cache)
(flymake-proc--get-system-include-dirs)
(flymake-proc--get-project-include-dirs)
(flymake-proc--add-project-include-dirs-to-cache)
(flymake-proc--get-project-include-dirs-from-cache)
(flymake-proc--post-syntax-check) (flymake-proc--process-sentinel)
(flymake-proc--process-filter) (flymake-proc--create-master-file)
(flymake-proc--find-buffer-for-file)
(flymake-proc--copy-buffer-to-temp-buffer)
(flymake-proc--read-file-to-temp-buffer)
(flymake-proc--save-buffer-in-file) (flymake-proc--replace-region,
flymake-proc--check-include)
(flymake-proc--check-patch-master-file-buffer)
(flymake-proc--master-file-compare)
(flymake-proc--find-possible-master-files)
(flymake-proc--included-file-name, flymake-proc--same-files)
(flymake-proc--fix-file-name, flymake-proc--find-buildfile)
(flymake-proc--clear-buildfile-cache)
(flymake-proc--add-buildfile-to-cache)
(flymake-proc--get-buildfile-from-cache)
(flymake-proc--find-buildfile-cache)
(flymake-proc--get-real-file-name-function)
(flymake-proc--get-cleanup-function) (flymake-proc--get-init-function)
(flymake-proc--get-file-name-mode-and-masks)
(flymake-proc--processes): Rename to internal symbol from
flymake-proc- version.
João Távora [Wed, 23 Aug 2017 01:23:41 +0000 (02:23 +0100)]
Completely rewrite Flymake's subprocess output processing
Instead of parsing and matching regexps line-by-line, insert
subprocess output in a separate buffer and parse using
`search-forward-regexp'. This eventually enables multi-line error
patterns and simplifies code all around. Store per-check information
in the subprocess using `process-get' and `process-put'. Treat error
messages, warnings, etc. more generically as "diagnostics". Create
these objects as soon as possible, reusing existing `flymake-ler'
structure. Fix some whitespace.
* lisp/progmodes/flymake.el (cl-lib): Require also when
loading.
(flymake--fix-line-numbers): Rename from
flymake-fix-line-numbers. Simplify.
(flymake-report): Call flymake--fix-line-numbers. Rearrange
plain diagnostics list into alist format expected by
flymake-highlight-err-lines.
* lisp/progmodes/flymake-proc.el (flymake-process-filter): Insert
process output and parse in dedicated output buffer.
(flymake-proc--diagnostics-for-pattern): New helper function.
(flymake-process-sentinel): Call flymake-post-syntax-check with
collected diagnostics. Kill output buffer.
(flymake-post-syntax-check): Receive diagnostics as third argument.
(flymake-parse-output-and-residual, flymake-new-err-info)
(flymake-parse-residual, flymake-parse-err-lines)
(flymake-split-output, flymake-proc-parse-line)
(flymake-output-residual): Delete.
(flymake-start-syntax-check-process): Use make-process. Setup
dedicated an output buffer
João Távora [Sun, 20 Aug 2017 23:17:05 +0000 (00:17 +0100)]
Flymake provides flymake-report re-entry point for backends
* lisp/progmodes/flymake-proc.el (flymake-post-syntax-check):
Simplify. Call flymake-report.
* lisp/progmodes/flymake.el (flymake-report): New function.
João Távora [Thu, 17 Aug 2017 14:38:12 +0000 (15:38 +0100)]
Split Flymake into flymake.el into flymake-proc.el (again!)
After deciding that this work would continue on master only, which
caused two commits named
Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
and
Revert "Add flymake-backends defcustom"
to be added to the emacs-26 branch, further discussion reversed that
decision.
See:
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01020.html
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01030.html
This means that those two commits MUST be merged to master AFTER ALL.
flymke-proc.el contains the main syntax-checking backend, while
flymake.el keeps mostly the UI part.
* lisp/progmodes/flymake-proc.el: New file. Require flymake.
* lisp/progmodes/flymake.el: Require flymake-proc.el at the end.
Nicolas Petton [Tue, 3 Oct 2017 11:12:56 +0000 (13:12 +0200)]
; ChangeLog fixes
Nicolas Petton [Tue, 3 Oct 2017 11:11:07 +0000 (13:11 +0200)]
Update authors.el
* admin/authors.el (authors-ignored-files, authors-valid-file-names)
(authors-renamed-files-alist): Additions.
Noam Postavsky [Tue, 3 Oct 2017 02:54:36 +0000 (22:54 -0400)]
Give more helpful messages for python completion setup failures
* lisp/progmodes/python.el (python-shell-completion-native-setup): In
case the completion setup failed with some exception, print out the
exception type and message. If libedit is detected, raise an
exception, since this is known to fail.
Glenn Morris [Mon, 2 Oct 2017 18:47:55 +0000 (14:47 -0400)]
; Auto-commit of loaddefs files.
Eli Zaretskii [Mon, 2 Oct 2017 18:35:51 +0000 (21:35 +0300)]
Fix the --without-x build
* src/frame.c (Ficonify_frame) [HAVE_WINDOW_SYSTEM]: Use
frame_parent only in GUI builds to avoid compilation errors in
--without-x builds. (Bug#28611)
Glenn Morris [Mon, 2 Oct 2017 17:19:11 +0000 (13:19 -0400)]
; * lisp/emacs-lisp/cl-print.el (cl-prin1): Whitespace fix.
Paul Eggert [Mon, 2 Oct 2017 16:04:46 +0000 (09:04 -0700)]
Fix customization of zoneinfo-style-world-list
A customizable variable's initial value cannot depend on that of
another customizable variable, since the variables are initialized
in other than textual order. Problem reported by N. Jackson
(Bug#24291).
* lisp/time.el (display-time-world-list): Default to t,
a special value that expands to zoneinfo-style-word-list
if that works, and to legacy-style-word-list otherwise.
(time--display-world-list): New function.
(display-time-world, display-time-world-timer): Use it.
Alan Mackenzie [Mon, 2 Oct 2017 14:42:13 +0000 (14:42 +0000)]
Fix a CC Mode brace stack cache bug.
* lisp/progmodes/cc-engine.el (c-update-brace-stack): Call
c-beginning-of-current-token after a failing search operation, to ensure we
don't cache a point inside a token.
Paul Eggert [Mon, 2 Oct 2017 06:15:36 +0000 (23:15 -0700)]
* etc/PROBLEMS: Document Bug#26638.
Paul Eggert [Mon, 2 Oct 2017 02:53:56 +0000 (19:53 -0700)]
Prefer HTTPS to HTTP for gnu.org
This fixes some URLs I omitted from my previous pass,
notably those in lists.gnu.org. Although lists.gnu.org
does not yet support TLS 1.1, TLS 1.0 is better than nothing.
* lisp/erc/erc.el (erc-official-location):
* lisp/mail/emacsbug.el (report-emacs-bug):
Use https:, not http:.
Paul Eggert [Mon, 2 Oct 2017 01:30:44 +0000 (18:30 -0700)]
Merge from Gnulib
This is mostly to change http: to https: in licenses.
* COPYING, build-aux/config.guess, build-aux/config.sub:
* doc/emacs/doclicense.texi, doc/emacs/gpl.texi:
* doc/lispintro/doclicense.texi, doc/lispref/doclicense.texi:
* doc/lispref/gpl.texi, doc/misc/doclicense.texi:
* doc/misc/gpl.texi, etc/COPYING, leim/COPYING:
* lib-src/COPYING, lib/COPYING, lisp/COPYING, lwlib/COPYING:
* msdos/COPYING, nt/COPYING, src/COPYING:
Copy from Gnulib.
Simen Heggestøyl [Sun, 1 Oct 2017 18:24:55 +0000 (20:24 +0200)]
Keep eww buffer current when looking up CSS on MDN
* lisp/textmodes/css-mode.el (css-lookup-symbol): Keep the eww buffer
current when looking up CSS documentation on MDN. This fixes a bug
where the eww buffer's content sometimes get mangled when switching
buffers mid-render.
Charles A. Roelli [Sat, 30 Sep 2017 18:42:03 +0000 (20:42 +0200)]
Workaround for faulty localtime() under macOS 10.6
* lisp/org/org-clock.el (org-clock--oldest-date): Only execute
'decode-time' on times later than year -2**31 under macOS 10.6.
See Bug#27706.
Alan Mackenzie [Sun, 1 Oct 2017 16:08:20 +0000 (16:08 +0000)]
Doc amendment for syntax-ppss.
* doc/elisp/syntax.texi (Position Parse): Note, twice, that syntax-ppss is
equivalent to parse-partial-sexp from the beginning of THE VISIBLE PART OF the
buffer. Final part of the fix for bug #22983.
Charles A. Roelli [Sun, 1 Oct 2017 15:41:49 +0000 (17:41 +0200)]
Remove incorrect NEWS entry about 'find-library'
* etc/NEWS (Changes in Emacs 26.1): Remove an entry about
'find-library' taking a prefix argument to pop to a different
window. This behavior was added in "Allow a prefix argument to
find-library to pop to a different window" (commit
e1f2d14a), and
then removed in "New commands: find-library-other-window,
find-library-other-frame" (commit
021430f4).
Alan Mackenzie [Sun, 1 Oct 2017 10:01:33 +0000 (10:01 +0000)]
Remove inadvertent changes to syntax.texi in last commit.
* doc/lispref/syntax.texi (Position Parse): revert changes.
Alan Mackenzie [Sat, 30 Sep 2017 11:08:16 +0000 (11:08 +0000)]
Amend documentation for text-quoting-style becoming a user option.
* doc/lispref/control.texi (Signaling Errors):
* doc/lispref/display.texi (Displaying Messages):
* doc/lispref/strings.texi (Formatting Strings):
Edit for brevity, farming out the details to the new
Text Quoting Style node.
* doc/lispref/help.texi (Text Quoting Style): New section.
Move detailed discussion of text-quoting-style here.
Add discussion about how to output grave accent and apostrophe in
documentation and messages. Adjust xrefs to point to this section
when appropriate.
* etc/NEWS: text-quoting-style semantics have not changed.
Alan Mackenzie [Fri, 22 Sep 2017 21:52:03 +0000 (21:52 +0000)]
Make the value nil in text-quoting-style mean what it does in Emacs 25.
This is a partial reversion of yesterday's commit by the same author, which
changed the meaning of nil and introduced the new value t.
* src/doc.c (text_quoting_style, text-quoting-style)
(internal--text-quoting-flag): Revert yesterday's changes.
* lisp/cus-start.el: (top level): Amend the entry for text-quoting-style.
* etc/NEWS: Amend the entry for text-quoting-style.
* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Bind text-quoting-style to
grave rather than nil to inhibit translation of quotes.
* doc/lispref/help.texi (Keys in Documentation): Revert the description of the
proposed new default, t.
Alan Mackenzie [Thu, 21 Sep 2017 20:31:06 +0000 (20:31 +0000)]
Make text-quoting-style customizable. Introduce t and new meaning for nil.
A value of nil for text-quoting-style now means "no translation". t means
"Use curved quotes if displayable".
* src/doc.c (text-quoting-style (function)): modify for new semantics.
(text-quoting-style (variable)): Amend the doc string, set the default value
to t.
* lisp/cus-start.el: (top level): Create a customize entry for
text-quoting-style in group display.
* etc/NEWS: Amend the entry for text-quoting-style.
* doc/emacs/display.texi (Text Display): Describe the translation of ASCII
quotes to curved quotes, and how to influence or inhibit it.
* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Describe binding
text-quoting-style to nil to inhibit unwanted quote translation.
* doc/lispref/help.texi (Keys in Documentation): Change text-quoting-style
from a variable to a user option. Describe its changed set of values. State
that it can be customized freely.
Michael Albinus [Sun, 1 Oct 2017 11:31:39 +0000 (13:31 +0200)]
eshell.texi improvements
* doc/misc/eshell.texi (Built-ins): eshell/sudo is a compiled
Lisp function in `em-tramp.el'. Mention also $*, $1, $2, ...
(Aliases): Add $*, $1, $2, ... to the variable index.
Alan Third [Tue, 15 Aug 2017 08:58:33 +0000 (09:58 +0100)]
Fix ns-win.el on GNUstep
* lisp/term/ns-win.el: Appkit version check only works on macOS, so
don't try it when not using Cocoa.
Martin Rudalics [Sun, 1 Oct 2017 08:30:33 +0000 (10:30 +0200)]
Fix reference style in org.texi
* doc/misc/org.texi (A Texinfo example): Fix reference style.
Martin Rudalics [Sun, 1 Oct 2017 08:17:17 +0000 (10:17 +0200)]
Improve handling of iconification of child frames (Bug#28611)
* src/frame.c (Ficonify_frame): Handle `iconify-child-frame' option.
(syms_of_frame): New symbols Qiconify_top_level and Qmake_invisible.
(iconify_child_frame): New option.
* lisp/cus-start.el (iconify-child-frame): Add customization
properties.
* doc/lispref/frames.texi (Child Frames): Describe new option
`iconify-child-frame'. Don't index "top-level frame" twice.
Noam Postavsky [Sat, 30 Sep 2017 01:00:10 +0000 (21:00 -0400)]
Revert "Don't lose arguments to eshell aliases (Bug#27954)"
It broke the established argument handling methods provided by eshell
aliases (Bug#28568).
* doc/misc/eshell.texi (Aliases): Fix example, call out use of
arguments in aliases.
* lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias): Ignore
ARGS.
Noam Postavsky [Mon, 28 Aug 2017 03:09:32 +0000 (23:09 -0400)]
Make "unsafe directory" error message more informative (Bug#865)
* lisp/server.el (server-ensure-safe-dir): Produce a description for
each "unsafe" condition.
Eric Abrahamsen [Sat, 30 Sep 2017 17:57:52 +0000 (10:57 -0700)]
Fix slot typecheck in eieio-persistent
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-slot-type-is-class-p):
An `or' form can specify multiple potential classes (or null) as
valid types for a slot, but previously only the final element of the
`or' was actually checked. Now returns all valid classes in the `or'
form.
(eieio-persistent-validate/fix-slot-value): Check if proposed value
matches any of the valid classes.
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
(eieio-test-multiple-class-slot): Test this behavior.
Dmitry Gutov [Sat, 30 Sep 2017 14:17:02 +0000 (16:17 +0200)]
Fix semantic-ia-fast-jump
* lisp/cedet/semantic/ia.el (semantic-ia--fast-jump-helper):
Use `pop-to-buffer-same-window' (bug#28645).
Kaushal Modi [Fri, 29 Sep 2017 16:38:56 +0000 (12:38 -0400)]
Bind vc-region-history
* lisp/vc/vc-hooks.el (vc-prefix-map):
Bind `vc-region-history' to 'C-x v h', which was earlier bound to
`vc-insert-headers' (Bug#27644).
* doc/emacs/maintaining.texi (VC Change Log): Mention the new binding.
* doc/emacs/vc1-xtra.texi (Version Headers): Remove the association of
'C-x v h' with `vc-insert-headers'.
(http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00957.html)
Allen Li [Sat, 30 Sep 2017 13:46:48 +0000 (16:46 +0300)]
Exit macro definition on undefined keys
* lisp/subr.el (undefined): Error out of kmacro definition, if any.
(Bug#28008)
Copyright-paperwork-exempt: yes
Tim Landscheidt [Sat, 30 Sep 2017 13:39:36 +0000 (16:39 +0300)]
Reset bidi-paragraph-direction on article rendering
* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Reset
bidi-paragraph-direction on article rendering. (Bug#28454)
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 30 Sep 2017 13:33:30 +0000 (16:33 +0300)]
Fix url-http use of url-current-object
* lisp/url/url-http.el (url-http): Bind url-current-object before
calling url-http-find-free-connection. (Bug#28515)
Andy Moreton [Sat, 30 Sep 2017 13:21:39 +0000 (16:21 +0300)]
Avoid assertions in vc-hg.el on MS-Windows
* lisp/vc/vc-hg.el (vc-hg--pcre-to-elisp-re)
(vc-hg--slurp-hgignore, vc-hg--read-repo-requirements)
(vc-hg-state-fast): Use file-name-absolute-p and directory-name-p
instead of relying on Unix file-name syntax. This avoids
assertion violations on MS-Windows.
Eli Zaretskii [Sat, 30 Sep 2017 13:01:00 +0000 (16:01 +0300)]
Improve documentation of 'copy-sequence'
* src/fns.c (Fcopy_sequence):
* doc/lispref/sequences.texi (Sequence Functions): Mention the
exception when copying an empty sequence. (Bug#28627)
Eli Zaretskii [Sat, 30 Sep 2017 12:29:28 +0000 (15:29 +0300)]
Minor update of ack.texi
* doc/emacs/ack.texi (Acknowledgments): Update Eli Zaretskii's
contributions.
N. Jackson [Sat, 30 Sep 2017 12:28:06 +0000 (15:28 +0300)]
* doc/emacs/emacs.texi (Acknowledgments): Add more contributors.
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 30 Sep 2017 12:08:47 +0000 (15:08 +0300)]
Improve indexing of multi-file/buffer Isearch commands
* doc/emacs/maintaining.texi (Identifier Search): Change wording
of index entries to make them different from those for multi-file
isearch commands. (Bug#28584)
* doc/emacs/search.texi (Other Repeating Search): Index the
multi-* commands. (Bug#28584) Rearrange the indexing to keep
each index entry close to its subject.
Mark Oteiza [Tue, 26 Sep 2017 21:13:36 +0000 (17:13 -0400)]
Add CAM02 JCh and CAM02-UCS J'a'b' conversions
* src/lcms.c (rad2deg, parse_jch_list, parse_jab_list, xyz_to_jch):
(jch_to_xyz, jch_to_jab, jab_to_jch): New functions.
(lcms-jch->xyz, lcms-jch->xyz, lcms-jch->jab, lcms-jab->jch): New Lisp
functions.
(lcms-cam02-ucs): Refactor.
(syms_of_lcms2): Declare new functions.
* test/src/lcms-tests.el (lcms-roundtrip, lcms-ciecam02-gold):
(lcms-jmh->cam02-ucs-silver): New tests.
* etc/NEWS: Mention new functions.
Eli Zaretskii [Sat, 30 Sep 2017 08:27:29 +0000 (11:27 +0300)]
Fix uses of @kindex in the Emacs manual
* doc/emacs/programs.texi (Expressions, Semantic, Hungry Delete):
* doc/emacs/mark.texi (Global Mark Ring)
(Disabled Transient Mark):
* doc/emacs/buffers.texi (Select Buffer):
* doc/emacs/mule.texi (File Name Coding): Fix @kindex entries
which used @key. Reported by Marcin Borkowski <mbork@mbork.pl>.
Eli Zaretskii [Sat, 30 Sep 2017 06:57:58 +0000 (09:57 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Paul Eggert [Sat, 30 Sep 2017 04:55:32 +0000 (21:55 -0700)]
Merge from gnulib
This incorporates:
2017-09-28 string: code style
2017-09-25 sys_types: update URL
2017-09-23 install-sh: do not assume / = //
2017-09-21 mktime: port to OpenVMS
* build-aux/install-sh, m4/mktime.m4, m4/string_h.m4:
* m4/sys_types_h.m4: Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.
Paul Eggert [Sat, 30 Sep 2017 00:44:23 +0000 (17:44 -0700)]
Prefer HTTPS to HTTP for gnu.org
This catches some URLs I missed in my previous scan,
or perhaps were added after the scan.
Paul Eggert [Fri, 29 Sep 2017 23:40:18 +0000 (16:40 -0700)]
; Spelling fixes
Noam Postavsky [Tue, 26 Sep 2017 01:58:55 +0000 (21:58 -0400)]
Wait for frame visibility with timeout in w32term too
* src/w32term.c (syms_of_w32term) [x-wait-for-event-timeout]: New
variable.
(x_make_frame_visible): Wait for frame to become visible according to
its value.
(input_signal_count): Remove.
Noam Postavsky [Thu, 31 Aug 2017 03:12:22 +0000 (23:12 -0400)]
Bring back the busy wait after x_make_frame_visible (Bug#25521)
But wait specfically for a MapNotify event, and only for a
configurable amount of time.
* src/xterm.c (syms_of_xterm) [x-wait-for-event-timeout]: New
variable.
(x_wait_for_event): Use it instead of hardcoding the wait to 0.1s.
(x_make_frame_visible): Call x_wait_for_event at the end.
* etc/NEWS: Announce x_wait_for_event.
Philipp Stephani [Fri, 29 Sep 2017 20:47:33 +0000 (22:47 +0200)]
; * src/gtkutil.c (xg_check_special_colors): Add another GTK+ FIXME.
Eli Zaretskii [Fri, 29 Sep 2017 19:03:30 +0000 (22:03 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Glenn Morris [Fri, 29 Sep 2017 16:49:19 +0000 (12:49 -0400)]
; Standardize license notices
Eli Zaretskii [Fri, 29 Sep 2017 12:59:17 +0000 (15:59 +0300)]
Fix last doc string change in simple.el
* lisp/simple.el (shell-command-saved-pos)
(region-extract-function, region-bounds): Doc fixes. (Bug#28609)
Eli Zaretskii [Fri, 29 Sep 2017 12:53:27 +0000 (15:53 +0300)]
Revert "bug#28609: simple.el"
This reverts commit
a75ab3b3fb8ab69ef38a94403d061f88f3b5b63e.
Devon Sean McCullough [Tue, 26 Sep 2017 14:51:04 +0000 (10:51 -0400)]
bug#28609: simple.el
Correct grammar; also, call a pair a pair.
(cherry picked from commit
25ef543a97a80718cc4eb33734d393420a43f41e)
Eli Zaretskii [Fri, 29 Sep 2017 10:27:42 +0000 (13:27 +0300)]
; * etc/NEWS: Fix last change.
Eli Zaretskii [Fri, 29 Sep 2017 10:24:05 +0000 (13:24 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Rasmus [Fri, 29 Sep 2017 08:41:51 +0000 (10:41 +0200)]
Merge branch 'emacs-26' into scratch/org-mode-merge
Eli Zaretskii [Fri, 29 Sep 2017 07:02:33 +0000 (10:02 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Noam Postavsky [Sat, 23 Sep 2017 15:40:14 +0000 (11:40 -0400)]
Fix ert backtrace saving for non-`signal'ed errors (Bug#28333)
* lisp/emacs-lisp/ert.el (ert--run-test-debugger): Take the frames
above the `debugger' frame, rather than assuming there will be a
`signal' frame.
Alan Third [Thu, 28 Sep 2017 21:27:02 +0000 (22:27 +0100)]
Revert "Fix build on macOS (bug#28571)"
This reverts commit
fec63089d53d2196b0348086aeed70277fbc02c0.
Prematurely pushed.
Alan Third [Sun, 24 Sep 2017 11:01:03 +0000 (12:01 +0100)]
Fix build on macOS (bug#28571)
* src/conf_post.h (HAVE_FUTIMENS, HAVE_FUTIMESAT, HAVE_UTIMENSAT)
[DARWIN_OS]: Undefine.
Simen Heggestøyl [Thu, 28 Sep 2017 16:47:07 +0000 (18:47 +0200)]
Add tests for `css-current-defun-name'
* test/lisp/textmodes/css-mode-tests.el (css-test-current-defun-name)
(css-test-current-defun-name-nested)
(css-test-current-defun-name-complex): New tests for
`css-current-defun-name'.
Martin Rudalics [Thu, 28 Sep 2017 08:10:21 +0000 (10:10 +0200)]
In w32fullscreen_hook don't add decorations to undecorated frames
* src/w32term.c (w32fullscreen_hook): Do not add (or try to
remove) decorations for undecorated frames.
João Távora [Wed, 27 Sep 2017 21:35:49 +0000 (22:35 +0100)]
Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
In other words, re-coalesce the two files,
lisp/progmodes/flymake-proc.el and lisp/progmodes/flymake-ui.el, back
into a single one, lisp/progmodes/flymake.el.
The changesets "Prefer HTTPS to FTP and HTTP in documentation" and
"allow nil init in flymake-allowed-file-name-masks to disable flymake"
are kept in place in the new lisp/progmodes/flymake.el.
This reverts Git commit
eb34f7f5a29e7bf62326ecb6e693f28878be28cd.
Don't merge this back to master as development happening there builds
upon this work. See also
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html.
João Távora [Wed, 27 Sep 2017 21:15:19 +0000 (22:15 +0100)]
Revert "Add flymake-backends defcustom"
This reverts Git commit
13993c46a21495167517f76d2e36b6c09ac5e89e.
Don't merge this back to master as development happening there builds
upon this work. See also
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html
Paul Eggert [Wed, 27 Sep 2017 00:15:56 +0000 (17:15 -0700)]
* src/editfns.c (styled_format): Fix typo in previous change.
Paul Eggert [Tue, 26 Sep 2017 23:31:57 +0000 (16:31 -0700)]
Avoid some unnecessary copying in Fformat etc.
This patch is just for performance; it should not affect behavior.
On my platform, it made the microbenchmark (format "%S" load-path)
run about 45% faster. It should also speed up calls like (message
"%s" STRING).
* src/callint.c (Fcall_interactively):
* src/dbusbind.c (XD_OBJECT_TO_STRING):
* src/editfns.c (Fmessage, Fmessage_box):
* src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
Use styled_format instead of Fformat or Fformat_message,
to avoid unnecessary copying.
* src/editfns.c (styled_format): New arg NEW_RESULT.
All uses changed. Reuse an input string if it has the
right value and if !NEW_RESULT.
* src/lisp.h (style_format): New decl.
John Wiegley [Tue, 26 Sep 2017 19:35:52 +0000 (12:35 -0700)]
lisp/simple.el: Indicate when a list of pairs is meant in a docstring
Philipp Stephani [Tue, 26 Sep 2017 18:34:27 +0000 (20:34 +0200)]
; * src/gtkutil.c (xg_create_frame_widgets): Add FIXME re. X drawing
Devon Sean McCullough [Tue, 26 Sep 2017 14:51:04 +0000 (10:51 -0400)]
bug#28609: simple.el
Correct grammar; also, call a pair a pair.
Dmitry Gutov [Mon, 25 Sep 2017 23:49:00 +0000 (02:49 +0300)]
Use a separate syntax-ppss cache for narrowed buffers
* lisp/emacs-lisp/syntax.el (syntax-ppss-wide):
New variable, to contain the data from `syntax-ppss-last' and
`syntax-ppss-cache'.
(syntax-ppss-cache, syntax-ppss-last): Remove.
(syntax-ppss-narrow, syntax-ppss-narrow-start): New variables.
(syntax-ppss-flush-cache): Flush both caches.
(syntax-ppss--data): Return the appropriate last result and
buffer cache for the current restriction.
(syntax-ppss, syntax-ppss-debug): Use it (bug#22983).
Joerg Behrmann [Mon, 18 Sep 2017 14:59:49 +0000 (16:59 +0200)]
Improve python3-compatibility of fallback completion (Bug#28499)
* lisp/progmodes/python.el (python-eldoc-setup-code): Use
inspect.getfullargspec instead of inspect.getargspec to avoid a
deprecation warning on every usage of eldoc in python-mode.
Copyright-paperwork-exempt: yes
Noam Postavsky [Mon, 25 Sep 2017 11:15:51 +0000 (07:15 -0400)]
Fix subr-x-tests when running from elc
* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-and-let*-test-group-1):
Use `eval' around the `should-error' cases.
Noam Postavsky [Sat, 23 Sep 2017 14:04:36 +0000 (10:04 -0400)]
* lisp/eshell/esh-util.el (eshell-condition-case): Add debug declaration.
Noam Postavsky [Wed, 30 Aug 2017 23:42:47 +0000 (19:42 -0400)]
Make sh-indentation into an alias for sh-basic-offset (Bug#21751)
* lisp/progmodes/sh-script.el (sh-indentation): Redefine as obsolete
variable alias for `sh-basic-offset'.
(sh-mode, sh-smie--indent-continuation)
(sh-smie-rc-rules, sh-basic-indent-line): Replace `sh-indentation'
with `sh-basic-offset'.
Noam Postavsky [Wed, 30 Aug 2017 23:31:48 +0000 (19:31 -0400)]
Fix loading of smie-config rules (Bug#24848)
* lisp/emacs-lisp/smie.el (smie-config--setter): Use `set-default'
instead of `setq-default'.
(smie-config): Use `custom-initialize-set' instead of
`custom-initialize-default' as the :initialize argument.
* lisp/progmodes/sh-script.el (sh-learn-buffer-indent): Mention that
we call `smie-config-guess' so that the user will have a chance to
find the correct docstring to consult. Remove hedging comments
regarding use of abnormal hooks.
Dmitry Gutov [Mon, 25 Sep 2017 23:25:03 +0000 (02:25 +0300)]
; Update NEWS for the change in eldoc-message
Dmitry Gutov [Mon, 25 Sep 2017 22:44:54 +0000 (01:44 +0300)]
Reset default-directory inside *xref-grep* buffer
* lisp/progmodes/xref.el (xref-collect-matches):
Reset default-directory, too. (Bug#28575)
Michael Albinus [Mon, 25 Sep 2017 15:52:24 +0000 (17:52 +0200)]
* test/lisp/tramp-tests.el (tramp-test21-file-links): Special code for smb.
Mark Oteiza [Mon, 25 Sep 2017 12:45:08 +0000 (08:45 -0400)]
Loosen strict parsing requirement for desktop files
There are other desktop-looking files, for instance those having to do
with MIME typess, that would benefit from being able to be read by this
function. It helps to have some flexibility.
* lisp/xdg.el (xdg-desktop-read-file): Remove an error condition.
* test/lisp/xdg-tests.el: Remove a test.
Mark Oteiza [Mon, 25 Sep 2017 12:44:23 +0000 (08:44 -0400)]
* lisp/xdg.el (xdg-thumb-uri): Fix doc string.
Martin Rudalics [Mon, 25 Sep 2017 08:09:32 +0000 (10:09 +0200)]
Fix documentation of `make-frame' and related variables and hooks
* lisp/frame.el (before-make-frame-hook)
(after-make-frame-functions, frame-inherited-parameters)
(make-frame): Fix doc-strings.
* doc/lispref/frames.texi (Creating Frames): Fix description
of `make-frame' and related variables and hooks.
Eric Abrahamsen [Sun, 24 Sep 2017 21:01:21 +0000 (14:01 -0700)]
Accept new `always' value for option `buffer-offer-save'
Also revert
ee512e9a82
* lisp/files.el (buffer-offer-save): In addition to nil and t, now
allows a third symbol value, `always'. A buffer where this option is
set to `always' will always be offered for save by
`save-some-buffers'.
(save-some-buffers): Check the exact value of this buffer-local
variable. No longer check the buffer name, or the value of
`write-contents-functions'.
* doc/lispref/buffers.texi (Killing Buffers): Note change in manual.
* doc/lispref/files.texi (Saving Buffers): Remove note about buffer
names.
* etc/NEWS: Mention in NEWS.
Alan Third [Sun, 24 Sep 2017 21:35:21 +0000 (22:35 +0100)]
Improve new NS scrolling variable names
* src/nsterm.m (ns-use-system-mwheel-acceleration): Replace with
'ns-use-mwheel-acceleration'.
(ns-touchpad-scroll-line-height): Replace with
'ns-mwheel-line-height'.
(ns-touchpad-use-momentum): Replace with 'ns-use-mwheel-momentum'.
* etc/NEWS: Change variable names.
Philipp Stephani [Sun, 24 Sep 2017 17:32:16 +0000 (19:32 +0200)]
Document 'replace-buffer-contents' in the manual.
* doc/lispref/text.texi (Replacing): New node.
Eli Zaretskii [Sat, 23 Sep 2017 19:12:49 +0000 (22:12 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Alan Third [Sat, 23 Sep 2017 18:43:58 +0000 (19:43 +0100)]
Fix undecorated frame resizing issues on NS (bug#28512)
* src/nsterm.m (EmacsView::updateFrameSize): Don't wait for the
toolbar on undecorated frames.
(EmacsView::initFrameFromEmacs): Group window flags correctly.
Eli Zaretskii [Sat, 23 Sep 2017 14:23:35 +0000 (17:23 +0300)]
Fix doc string of 'dired-listing-switches'
* lisp/dired.el (dired-listing-switches): Fix the quoting
example. (Bug#28569)
Eli Zaretskii [Sat, 23 Sep 2017 07:45:46 +0000 (10:45 +0300)]
; * doc/emacs/display.texi (Display Custom): Fix wording.
Paul Eggert [Sat, 23 Sep 2017 07:34:01 +0000 (00:34 -0700)]
; Spelling and URL fixes
Eli Zaretskii [Sat, 23 Sep 2017 07:07:11 +0000 (10:07 +0300)]
Documentation improvements for 'display-line-numbers'
* doc/emacs/display.texi (Display Custom): Document a few more
options for display-line-numbers. (Bug#28533) Fix a typo.
Mark Oteiza [Fri, 22 Sep 2017 20:34:31 +0000 (16:34 -0400)]
; Fix typo
* lisp/emacs-lisp/subr-x.el: Nix extra parenthesis.
Eli Zaretskii [Fri, 22 Sep 2017 17:41:10 +0000 (20:41 +0300)]
Fix last change in bat-mode.el
* lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Fix last
change. (Bug#28311)
Eli Zaretskii [Fri, 22 Sep 2017 14:52:47 +0000 (17:52 +0300)]
Fix restoring in GUI sessions desktop saved in TTY sessions
* lisp/frameset.el (frameset-filter-font-param): New function.
(frameset-persistent-filter-alist): Use it for processing the
'font' frame parameter. (Bug#17352)